home *** CD-ROM | disk | FTP | other *** search
/ United Public Domain Gold 4 / United Public Domain Gold 4.iso / fredfish / ff.0014.dms / ff.0014.adf / dex / dex.doc < prev    next >
Text File  |  1990-04-10  |  22KB  |  991 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.                     DDDDEEEEXXXX ---- DDDDooooccccuuuummmmeeeennnnttttaaaattttiiiioooonnnn EEEExxxxttttrrrraaaaccccttttiiiioooonnnn UUUUttttiiiilllliiiittttyyyy
  11.  
  12.  
  13.  
  14.                                    Fred Fish
  15.  
  16.  
  17.                               345 Scottsdale Road
  18.                            Pleasant Hill, Ca  94523
  19.  
  20.  
  21.  
  22.  
  23.                                    _A_B_S_T_R_A_C_T
  24.  
  25.  
  26.  
  27.                  Dex is a utility for extracting documentation from
  28.             program source files and compiling it into a form suit-
  29.             able for input to a text formatting program such as the
  30.             UNIX "nroff" utility.
  31.  
  32.  
  33.                  The primary benefits of a utility  like  dex  are:
  34.             (1)  internal  source  code  documentation  is far more
  35.             likely to remain current than  external  documentation,
  36.             (2) the production of updated documentation can be done
  37.             largely under computer control.
  38.  
  39.  
  40.                  Dex was developed by the author to  aid  in  main-
  41.             taining  documentation  for  his  portable math library
  42.             (pml).  Thus  it  is  particularly  useful  in  similar
  43.             applications  where a programming project's source code
  44.             is split into many small files.
  45.  
  46.  
  47.  
  48.        June 28, 1983
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.                                      - 2 -
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.                     DDDDEEEEXXXX ---- DDDDooooccccuuuummmmeeeennnnttttaaaattttiiiioooonnnn EEEExxxxttttrrrraaaaccccttttiiiioooonnnn UUUUttttiiiilllliiiittttyyyy
  143.  
  144.  
  145.  
  146.                                    Fred Fish
  147.  
  148.  
  149.                               345 Scottsdale Road
  150.                            Pleasant Hill, Ca  94523
  151.  
  152.  
  153.  
  154.  
  155.        _1.  _I_N_T_R_O_D_U_C_T_I_O_N
  156.  
  157.  
  158.             Dex is a utility for extracting documentation  from  program
  159.        source files and compiling it into a form suitable for input to a
  160.        text formatting program.  Currently,  the  only  text  formatting
  161.        program supported is the  UNIX^  "nroff"  utility.   However,  it
  162.        would be a relatively simple process to extend the current imple-
  163.        mentation to support other text processors.
  164.  
  165.  
  166.             Dex was originally developed to aid the author in  maintain-
  167.        ing  his portable math library (pml) documentation.  However, dex
  168.        is useful for virtually any application where a medium  to  large
  169.        program  is  under development, particularly if the work is being
  170.        done simultaneously by several programmers.
  171.  
  172.  
  173.             Much of the dex implementation is done using _l_e_x  and  _y_a_c_c.
  174.        This  has  greatly  reduced  the  amount  of  programming  effort
  175.        required and made constant  evolution  relatively  painless.   It
  176.        does  however  effectively  restrict usage of dex to UNIX systems
  177.        since few non-UNIX systems support these development aids.
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.        __________________________
  191.        ^UNIX is a trademark of Bell Laboratories.
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.                                      - 2 -
  203.  
  204.  
  205.        _2.  _S_O_U_R_C_E _C_O_D_E _E_X_A_M_P_L_E
  206.  
  207.  
  208.        _2._1.  _C _S_o_u_r_c_e _C_o_d_e _S_a_m_p_l_e
  209.  
  210.  
  211.             The source code format for dex usage is quite similar to the
  212.        documentation format found in the Unix Programmer's Manual.  This
  213.        leads to highly readable internal  documentation  in  a  familiar
  214.        format.   For  example, the documentation shown in figure 1 might
  215.        precede the source code for a "tolower" library function.
  216.  
  217.  
  218.  
  219.           /*
  220.            *  FUNCTION
  221.            *
  222.            *       tolower    convert character to lower case
  223.            *
  224.            *  SYNOPSIS
  225.            *
  226.            *       char tolower(ch)
  227.            *       char ch;
  228.            *
  229.            *  DESCRIPTION
  230.            *
  231.            *       Tolower converts a character from upper case
  232.            *       to lower case. Characters which are already
  233.            *       lower case or are not alphabetic are returned
  234.            *       unmodified.
  235.            *
  236.            *              a   =>   a
  237.            *              A   =>   a
  238.            *              &   =>   &
  239.            *              7   =>   7
  240.            *                  .
  241.            *                 etc
  242.            *
  243.            */
  244.  
  245.  
  246.                                    Figure 1
  247.                               _S_o_u_r_c_e _C_o_d_e _E_x_a_m_p_l_e
  248.  
  249.  
  250.  
  251.  
  252.        _2._2.  _D_e_x _S_a_m_p_l_e _O_u_t_p_u_t
  253.  
  254.  
  255.             Dex would process the text shown in figure 1,  a  documenta-
  256.        tion  _r_e_g_i_o_n,  to  produce the text formatter source in figure 2.
  257.        However, before you try it, at least read the section on  dynamic
  258.        reconfiguration,   since   dex   will   do  _n_o_t_h_i_n_g  without  the
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.                                      - 3 -
  269.  
  270.  
  271.        appropriate reconfiguration file.
  272.  
  273.  
  274.  
  275.                .in 0
  276.                .fi
  277.                .bp
  278.                .sp 3
  279.                .ce
  280.                ***********
  281.                .ce
  282.                * tolower *
  283.                .ce
  284.                ***********
  285.                .sp 3
  286.                .ul 1
  287.                SYNOPSIS
  288.                .sp 1
  289.                .in 8
  290.                .nf
  291.                char tolower(ch)
  292.                char ch;
  293.                .sp 1
  294.                .in 0
  295.                .ul 1
  296.                DESCRIPTION
  297.                .sp 1
  298.                .in 8
  299.                .fi
  300.                Tolower converts a character from upper case
  301.                to lower case. Characters which are already
  302.                lower case or are not alphabetic are returned
  303.                unmodified.
  304.                .sp 1
  305.                .nf
  306.                .in 16
  307.                a   =>   a
  308.                A   =>   a
  309.                &   =>   &
  310.                7   =>   7
  311.                    .
  312.                   etc
  313.                .sp 1
  314.  
  315.  
  316.                                    Figure 2
  317.                                _D_e_x _S_a_m_p_l_e _O_u_t_p_u_t
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.                                      - 4 -
  335.  
  336.  
  337.        _2._3.  _N_r_o_f_f _S_a_m_p_l_e _O_u_t_p_u_t
  338.  
  339.  
  340.             Dex currently knows nothing about  macro  packages,  so  its
  341.        output can be intermixed with other nroff source intended for any
  342.        of  the  macro  packages   (with  restrictions  noted  in   macro
  343.        package's  documentation concerning command conflicts).  Figure 3
  344.        shows the output of nroff for the input of figure 2.
  345.  
  346.  
  347.  
  348.                                   ***********
  349.                                   * tolower *
  350.                                   ***********
  351.  
  352.  
  353.  
  354.        _S_Y_N_O_P_S_I_S
  355.  
  356.                char tolower(ch)
  357.                char ch;
  358.  
  359.        _D_E_S_C_R_I_P_T_I_O_N
  360.  
  361.                Tolower converts a character from  upper  case  to  lower
  362.                case.  Characters which are already lower case or are not
  363.                alphabetic are returned unmodified.
  364.  
  365.                        a   =>   a
  366.                        A   =>   a
  367.                        &   =>   &
  368.                        7   =>   7
  369.                            .
  370.                           etc
  371.  
  372.  
  373.                                    Figure 3
  374.                               _N_r_o_f_f _S_a_m_p_l_e _O_u_t_p_u_t
  375.  
  376.  
  377.  
  378.  
  379.        _2._4.  _D_y_n_a_m_i_c _R_e_c_o_n_f_i_g_u_r_a_t_i_o_n
  380.  
  381.  
  382.             Dex has _n_o built in knowledge about how to handle each docu-
  383.        mentation _t_o_p_i_c (such as "DESCRIPTION") with respect to formatter
  384.        modes such as fill, underline, indent, etc.   This  knowledge  is
  385.        obtained  via a mechanism referred to as _d_y_n_a_m_i_c _r_e_c_o_n_f_i_g_u_r_a_t_i_o_n,
  386.        whereby a special file is read from the directory containing  the
  387.        processed  source  files.   Dex  can also be instructed to read a
  388.        reconfiguration file of the user's choosing.
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.                                      - 5 -
  401.  
  402.  
  403.             Dex does not complain about the absence of the  reconfigura-
  404.        tion  file  and  if  it is unreadable will essentially do nothing
  405.        while processing the specified source files.  In the  example  of
  406.        figure  1, dex would typically be reconfigured to default to fill
  407.        mode for the text of the "DESCRIPTION" _t_o_p_i_c and  to  default  to
  408.        nofill mode for the text "SYNOPSIS" _t_o_p_i_c.
  409.  
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.                                      - 6 -
  467.  
  468.  
  469.        _3.  _D_E_F_I_N_I_T_I_O_N_S
  470.  
  471.  
  472.             To provide a consistent terminology for describing dex usage
  473.        some basic "buzz words" need to be defined.
  474.  
  475.  
  476.        _3._1.  _D_o_c_u_m_e_n_t_a_t_i_o_n _T_o_p_i_c
  477.  
  478.  
  479.             The basic building block of internal  documentation  is  the
  480.        documentation  _t_o_p_i_c.  A documentation _t_o_p_i_c is a contiguous sec-
  481.        tion of documentation which begins with recognition  of  a  topic
  482.        _i_d_e_n_t_i_f_i_e_r and continues until recognition of another topic _i_d_e_n_-
  483.        _t_i_f_i_e_r, or program source code (junk).
  484.  
  485.  
  486.             In the previous example, the topic  _i_d_e_n_t_i_f_i_e_r_s  are  "FUNC-
  487.        TION", "SYNOPSIS", "DESCRIPTION", and "BUGS".  The _t_o_p_i_c_s are the
  488.        topic _i_d_e_n_t_i_f_i_e_r_s along with the corresponding topic _b_o_d_y (text).
  489.        Thus  the  "BUGS" _t_o_p_i_c consists of the the lines shown in figure
  490.        4.
  491.  
  492.  
  493.  
  494.  
  495.             *  BUGS
  496.             *
  497.             *      As implemented only works on systems for which
  498.             *      native character set is ASCII.
  499.             *
  500.  
  501.  
  502.                                    Figure 4
  503.                           _D_o_c_u_m_e_n_t_a_t_i_o_n _T_o_p_i_c _E_x_a_m_p_l_e
  504.  
  505.  
  506.  
  507.  
  508.        _3._2.  _D_o_c_u_m_e_n_t_a_t_i_o_n _R_e_g_i_o_n
  509.  
  510.  
  511.             A documentation _r_e_g_i_o_n is a (possibly  non-contiguous)  sec-
  512.        tion  of  documentation  comprised  of  one or more documentation
  513.        _t_o_p_i_c_s.  It begins with recognition of a topic  identifier  which
  514.        has  previously  been  configured to start a region and continues
  515.        until another region start identifier is encountered.
  516.  
  517.  
  518.             In the example of figure 1, only the topic identifier "FUNC-
  519.        TION"  will  generally be flagged as starting a new documentation
  520.        region.  Thus the entire C  comment  is  a  documentation  region
  521.        although it contains no embedded C code between topics.
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.                                      - 7 -
  533.  
  534.  
  535.        _4.  _S_O_U_R_C_E _L_I_N_E _D_E_T_A_I_L_S
  536.  
  537.  
  538.             Dex is set up to recognize comment lines for various  source
  539.        file types.  It recognizes the "*" character as starting a C com-
  540.        ment line, the "#" character as starting "make" and dex  reconfi-
  541.        guration file comment lines, and a ";" character or "|" character
  542.        as starting assembler comment lines.   These  characters  can  be
  543.        preceeded  by  any number of blanks and tabs and must be followed
  544.        by at least one blank or tab.
  545.  
  546.  
  547.             Files processed by dex are divided strings which  match  one
  548.        of the following forms:
  549.  
  550.  
  551.  
  552.          (1)  <blanks/tabs><comment_string><blanks><text><newline>
  553.               Usually  contains  the topic identifier in the "text"
  554.               field.  The <blanks> field  consists  of  2  or  more
  555.               blanks.
  556.  
  557.          (2)  <blanks/tabs><comment_string><tab><text><newline> The
  558.               text is emitted in fill or nofill mode depending upon
  559.               the state of the EMITFILL flag  (see  reconfiguration
  560.               section).
  561.  
  562.          (3)  <blanks/tabs><comment_string><tab><tab><text><newline>
  563.               The  text is emitted in nofill mode _r_e_g_a_r_d_l_e_s_s of the
  564.               state of the EMITFILL flag.  The <text>  is  anything
  565.               except newline, including blanks and tabs.
  566.  
  567.          (4)  <blanks/tabs><comment_string><newline>  Causes   com-
  568.               mands  for  a  single blank line to be emitted.  Thus
  569.               blank comment lines map one for one with blank  lines
  570.               in the nroff output.
  571.  
  572.          (5)  Any line not beginning with <blanks/tabs> followed by
  573.               <comment_string>  is considered to be "junk" and ter-
  574.               minates processing of the current topic.   Subsequent
  575.               lines  which  match  (2),  (3),  or (4) above will be
  576.               ignored until the next match of (1).
  577.  
  578.  
  579.             Figure 1 is reproduced in figure 5  with  each  line  marked
  580.        according  to  which pattern it matches.  Carefully study figures
  581.        1, 2, 3, and 5 to determine  what  transformations  are  made  in
  582.        going from the source code to the nroff output.
  583.  
  584.             Note that there can be any number of leading tabs and blanks
  585.        (or  none).   Also,  lines  which  have exactly one tab after the
  586.        string recognized as starting a comment can be emitted in  either
  587.        filled  or  unfilled mode while lines having two tabs are emitted
  588.        in unfilled mode  only.   This  allows  reasonable  handling  and
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.                                      - 8 -
  599.  
  600.  
  601.  
  602.  
  603.            5   /*
  604.            1    *  FUNCTION
  605.            4    *
  606.            2    *       tolower    convert character to lower case
  607.            4    *
  608.            1    *  SYNOPSIS
  609.            4    *
  610.            2    *       char tolower(ch)
  611.            2    *       char ch;
  612.            4    *
  613.            1    *  DESCRIPTION
  614.            4    *
  615.            2    *       Tolower converts a character from upper case
  616.            2    *       to lower case. Characters which are already
  617.            2    *       lower case or are not alphabetic are returned
  618.            2    *       unmodified.
  619.            4    *
  620.            3    *              a   =>   a
  621.            3    *              A   =>   a
  622.            3    *              &   =>   &
  623.            3    *              7   =>   7
  624.            3    *                  .
  625.            3    *                 etc
  626.            4    *
  627.            5    */
  628.  
  629.  
  630.                                    Figure 5
  631.                          _S_o_u_r_c_e _C_o_d_e _E_x_a_m_p_l_e _R_e_v_i_s_i_t_e_d
  632.  
  633.  
  634.        appearance of fillable text  interspersed  with  lists  or  other
  635.        non-fillable text.
  636.  
  637.  
  638.             It should also be pointed out that the file being  processed
  639.        does  _n_o_t  have  to  be  an ASCII text file.  All input bytes are
  640.        masked with octal 177 so object files and other  non-ASCII  files
  641.        do  not  cause  problems.  This allows one to scan all files in a
  642.        directory, extracting documentation, without worrying about  what
  643.        kind of files they are.
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.                                      - 9 -
  665.  
  666.  
  667.        _5.  _R_E_C_O_N_F_I_G_U_R_A_T_I_O_N
  668.  
  669.  
  670.             Dex is designed so that it can be  reconfigured  dynamically
  671.        by  placing  reconfiguration  instructions  in a file in the same
  672.        directory as the files to be processed. If a file name other than
  673.        the default reconfiguration file is desired, this too can be han-
  674.        dled by issuing the appropriate command line switch when  dex  is
  675.        invoked.
  676.  
  677.  
  678.             Each time dex processes the first file in any  directory  it
  679.        automagically  looks  for a file called ".dexrc", the default dex
  680.        reconfiguration file.  It will _n_o_t complain if the  file  is  not
  681.        found  or  is unreadable.  Some of the things which can be recon-
  682.        figured are:
  683.  
  684.  
  685.            o    _T_o_p_i_c _i_d_e_n_t_i_f_i_e_r _w_o_r_d_s:  Specific  strings  can  be
  686.                 added to or removed from the internal tables.
  687.  
  688.            o    _F_i_l_l _m_o_d_e: The  default  handling  for  fill/unfill
  689.                 mode  can be enabled or disabled for specific docu-
  690.                 mentation topics.
  691.  
  692.            o    _O_u_t_p_u_t _f_i_l_e_s: The output for specific documentation
  693.                 regions  can  be redirected to files other than the
  694.                 default standard output.
  695.  
  696.            o    _P_r_o_c_e_s_s_i_n_g  _i_n_h_i_b_i_t_i_o_n:  Processing  of   specified
  697.                 documentation  regions or topics can be disabled or
  698.                 enabled dynamically.
  699.  
  700.  
  701.  
  702.        _5._1.  _R_e_c_o_n_f_i_g_u_r_a_t_i_o_n _F_i_l_e _F_o_r_m_a_t
  703.  
  704.  
  705.             Each line of a reconfiguration file is either a comment or a
  706.        reconfiguration directive.  Comments are any lines beginning with
  707.        the "#" character (with or without leading whitespace), a  blank,
  708.        or  a  form  feed  character.  The directives currently supported
  709.        are:
  710.  
  711.  
  712.                .flags    Set or reset flags for a given topic iden-
  713.                          tifier.
  714.  
  715.                .output   Redirect output to  a  file  for  a  given
  716.                          topic identifier.
  717.  
  718.  
  719.  
  720.             More than one directive line  may  be  associated  with  any
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.                                     - 10 -
  731.  
  732.  
  733.        given  identifier.    Thus,  for example, if one line is insuffi-
  734.        cient to set or reset all desired flags for the  "FILE"  identif-
  735.        ier,  then  another  directive  can  be  issued for the remaining
  736.        flags.
  737.  
  738.  
  739.             Entries are free format  within  a  given  line;  whitespace
  740.        separating  directive  fields  is simply ignored.  The formats of
  741.        the current directives are:
  742.  
  743.  
  744.                .flags  <identifier>  [-]<flag1> [-]<flag2> ...
  745.  
  746.                .output <identifier>  <filename>
  747.  
  748.  
  749.  
  750.  
  751.        _5._2.  _I_d_e_n_t_i_f_i_e_r _F_l_a_g_s
  752.  
  753.  
  754.             Flags associated with specified topic identifiers can be set
  755.        or  reset  by  the  ".flags" reconfiguration directive.  When dex
  756.        starts up all flags are initially reset.  They are set by  simply
  757.        naming  them  in  the  directive line (a leading "+" character is
  758.        optional).  They are reset by naming  them  with  a  leading  "-"
  759.        character.   Flags  not  named in the reconfiguration file remain
  760.        unchanged.  The current flags are:
  761.  
  762.  
  763.  
  764.                PROCESS     If set then topic is  processed,  other-
  765.                            wise it is ignored.
  766.  
  767.                EMITTEXT    If set then topic text is emitted,  oth-
  768.                            erwise  there  is not output while topic
  769.                            is processed.
  770.  
  771.                EMITBOX     If set then first word of topic text  is
  772.                            emitted  enclosed  in  a  box.  (Doesn't
  773.                            mesh well with EMITTEXT)
  774.  
  775.                EMITFILL    If set then text separated from  comment
  776.                            string  ("*", "#", or ";") with a single
  777.                            tab is emitted in fill mode.
  778.  
  779.                EMITUL      If set then topic identifier  is  under-
  780.                            lined when emitted.
  781.  
  782.                EMITBP      If set then commands to start  new  page
  783.                            are  emitted prior to topic output (gen-
  784.                            erally used with REGION).
  785.  
  786.  
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.                                   - 11 -
  797.  
  798.  
  799.                REGION      If set then  topic  identifier  is  con-
  800.                            sidered  to  start  a  new documentation
  801.                            region.  If  PROCESS  is  simultaneously
  802.                            reset  then  _a_l_l  topics  until the next
  803.                            region are suppressed.
  804.  
  805.  
  806.  
  807.  
  808.        _5._3.  _R_e_c_o_n_f_i_g_u_r_a_t_i_o_n _F_i_l_e _E_x_a_m_p_l_e
  809.  
  810.  
  811.             Figure 6 is a reconfiguration file which specifies that  the
  812.        identifier  "FUNCTION"  starts a documentation region, the region
  813.        is to be processed, the function name is to be printed in  a  box
  814.        and  each  function  starts on a new page.   Also, the identifier
  815.        "DESCRIPTION" is for a normal (non-region) topic,  the  topic  is
  816.        processed,  its text is emitted, the emitted text is fill mode by
  817.        default, and the identifier is to be underlined when printed.
  818.  
  819.  
  820.  
  821.              .flags "FUNCTION"     REGION PROCESS EMITBOX EMITBP
  822.              .flags "DESCRIPTION" -REGION PROCESS EMITTEXT
  823.              .flags "DESCRIPTION"  EMITUL EMITFILL
  824.  
  825.  
  826.                                    Figure 6
  827.                          _R_e_c_o_n_f_i_g_u_r_a_t_i_o_n _F_i_l_e _E_x_a_m_p_l_e
  828.  
  829.  
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.  
  851.  
  852.  
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.                                     - 12 -
  863.  
  864.  
  865.        _6.  _M_I_S_C_E_L_L_A_N_E_O_U_S
  866.  
  867.  
  868.        _6._1.  _U_s_a_g_e
  869.  
  870.  
  871.             Dex is invoked with a command line of the form:
  872.  
  873.  
  874.             dex [-dhtv] [-r rcfile] file1 file2 file3 ...
  875.  
  876.                  d =>  enable debug mode
  877.                  h =>  print internal help message
  878.                  t =>  enable trace mode
  879.                  v =>  enable verbose mode
  880.  
  881.                  r =>  use reconfiguration file <rcfile>
  882.  
  883.  
  884.  
  885.        _6._2.  _S_t_y_l_e _N_o_t_e_s
  886.  
  887.  
  888.             The following order is suggested for topics within  a  docu-
  889.        mentation  region.  It roughly follows the order which appears in
  890.        the Unix Programmer's Manual.
  891.  
  892.  
  893.  
  894.            o    FUNCTION or FILE or TOOL or NAME
  895.  
  896.            o    KEY WORDS
  897.  
  898.            o    SYNOPSIS
  899.  
  900.            o    DESCRIPTION
  901.  
  902.            o    RETURNS
  903.  
  904.            o    EXAMPLE
  905.  
  906.            o    FILES
  907.  
  908.            o    SEE ALSO
  909.  
  910.            o    DIAGNOSTICS
  911.  
  912.            o    WARNINGS or CAVEATS or RESTRICTIONS or BUGS
  913.  
  914.            o    AUTHOR
  915.  
  916.            o    PSEUDO CODE
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.                                     - 13 -
  929.  
  930.  
  931.  
  932.  
  933.  
  934.  
  935.  
  936.  
  937.  
  938.  
  939.  
  940.  
  941.  
  942.  
  943.  
  944.  
  945.  
  946.  
  947.  
  948.  
  949.  
  950.  
  951.  
  952.  
  953.  
  954.  
  955.  
  956.  
  957.  
  958.  
  959.  
  960.  
  961.  
  962.  
  963.  
  964.  
  965.  
  966.  
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985.  
  986.  
  987.  
  988.  
  989.  
  990.  
  991.